---@class BattleResult:IBehaviour
local BattleResult = ClientFight.CreateClass("BattleResult", ClientFight.HttpResult)
function BattleResult:ctor()
    ---@type number
    self.fightId = nil;
    --[[
    * 输赢
    ]]
    ---@type number
    self.win = nil;
    --[[
    * 战斗时间
    ]]
    ---@type number
    self.time = nil;
    --[[
    * 战报是否从self.oss读取标记
    ]]
    ---@type number
    self.oss = nil;
    --[[
    * self.oss!=1时,是否启用dev环境的self.oss战报下载
    ]]
    ---@type number
    self.devOss = nil;
    --[[
    * 剩余血量
    ]]
    ---@type table<number,number>
    self.currHps = {};

    --[[最大血量]]
    ---@type table<number,number>

    self.maxHp = {};
    --[[
    * 当前能量
    ]]
    ---@type table<number,number>
    self.currEnergys = {};
    --[[
    * 上阵英雄战斗数据分析，数组顺序和atkMembers一致
    ]]
    ---@type table<number,FighterStats>
    self.atkMemberStats = {};
    --[[
    * 上阵英雄战斗数据分析，数组顺序和atkMembers一致
    ]]
    ---@type table<number,FighterStats>
    self.defMemberStats = {};

    --[[
    * 通常战斗信息是在游戏服创建，特殊情况会在战斗服创建，此时需要将战斗信息返回给游戏服
    * 目前在大秘境得加时赛会需要用到。
    ]]
    ---@type BattleInfo
    self.battleInfo = nil;

    --战报的存放地址,请求战报时用这个地址替换原来的(self.fightId)请求战报
    ---@type String
    self.fightReportPath = nil;

    --[[
    * =2表示是一场真实的战斗(有伤害统计面板等),但是战报上传失败了,客户端不需要播放/回放战报;
    * =1表示没有战斗数据(连伤害统计面板等都看不到的),强行结算结果的;
    * =0表示是真实的战报
    ]]
    ---@type number
    self.noFight = 0;

    --[[ 战报版本号 ]]
    self.version = 0;



    --[[
    * 附加字段
    ]]
    ---@type table<string,string>
    self.extraInfo = {}

end

function BattleResult:BattleResult()
    self.super:BattleResult(ErrorCode.PLATFORM_SUCCESS.id, ErrorCode.PLATFORM_SUCCESS.message);
end

function BattleResult:BattleResult(errorCode)
    self.super:BattleResult(errorCode.id, errorCode.message);
end

function BattleResult:getFightId()
    return self.fightId;
end

function BattleResult:setFightId(fightId)
    self.fightId = self.fightId;
end

function BattleResult:getWin()
    return self.win;
end

function BattleResult:setWin(win)
    self.win = self.win;
end

function BattleResult:getTime()
    return self.time;
end

function BattleResult:setTime(time)
    self.time = self.time;
end

function BattleResult:getCurrHps()
    return self.currHps;
end

function BattleResult:setCurrHps(currHps)
    self.currHps = currHps;
end

function BattleResult:getCurrEnergys()
    return self.currEnergys;
end

function BattleResult:setCurrEnergys(currEnergys)
    self.currEnergys = currEnergys;
end

function BattleResult:getExtraInfo()
    return extraInfo;
end

function BattleResult:setExtraInfo(extraInfo)
    self.extraInfo = extraInfo;
end

function BattleResult:getAtkMemberStats()
    return self.atkMemberStats;
end

function BattleResult:setAtkMemberStats(atkMemberStats)
    self.atkMemberStats = atkMemberStats;
end

function BattleResult:getDefMemberStats()
    return defMemberStats;
end

function BattleResult:setDefMemberStats(defMemberStats)
    self.defMemberStats = defMemberStats;
end

function BattleResult:getOss()
    return self.oss;
end

function BattleResult:setOss(oss)
    self.oss = self.oss;
end

function BattleResult:setDevOss(devOss)
    self.devOss = devOss;
end

function BattleResult:getDevOss()
    return self.devOss;
end

function BattleResult:getBattleInfo()
    return self.battleInfo;
end

function BattleResult:setBattleInfo(battleInfo)
    self.battleInfo = battleInfo;
end

function BattleResult:setFightReportPath(fightReportPath)
    self.fightReportPath = fightReportPath;
end

function BattleResult:getFightReportPath()
    return self.fightReportPath;
end

function BattleResult:getMaxHp()
    return self.maxHp;
end

function BattleResult:setNoFight(noFight)
    self.noFight = noFight;
end

function BattleResult:getNoFight()
    return self.noFight;
end
function BattleResult:getVersion()
return self.version;
end

    function BattleResult:ssetVersion(version)
self.version = version;
end